Software architectures are increasingly using products such as libraries, frameworks, and reusable packages. Many such software products are designed to operate with hierarchically organized data, which can be quite complex. Additionally, such products can be deployed across multiple applications and integrated into customized applications, for which the hierarchical data structures can vary according to the application need. Accordingly, it is important to test such software products for the wide range of data structures that could be encountered over the product's lifetime. For hierarchical data structures of even moderate complexity, the number of variations can be prohibitive for exhaustive testing; in some cases, the number of variations can even be infinite. Moreover, known combinatorial testing approaches are not suited for handling hierarchical or multi-level datatypes.
Accordingly, there remains a need for improved technology for validating software products for multi-level or hierarchical datatypes.